home *** CD-ROM | disk | FTP | other *** search
- /* $Id: ISHSMP.H 1.3 1997/05/15 03:13:38 Emil Exp $ */
- /*****************************************************************************\
- * *
- * I3DShUti.h *
- * IShSMPUtilities definition *
- * *
- * Copyright (c) 1995-1196, Ray Dream, Inc. All rights reserved. *
- * *
- \*****************************************************************************/
-
- #ifndef __ISHSMP__
- #define __ISHSMP__
-
- #ifndef __3DCOTYPE__
- #include "3DCoType.h"
- #endif
-
-
- /****** Globally Unique Ids **************************************************/
- DEFINE_GUID(IID_IShSMPUtilities, 0x900b69f1, 0x701b, 0x11d0, 0xb2, 0xb5, 0x0, 0xaa, 0x0, 0x4b, 0x60, 0xe7);
- DEFINE_GUID(IID_IShCriticalSection, 0xc31c8180, 0x9fcf, 0x11d0, 0xac, 0x28, 0x0, 0x60, 0x97, 0xb, 0xc5, 0x21);
- DEFINE_GUID(IID_IShLocalStorage, 0xc31c8181, 0x9fcf, 0x11d0, 0xac, 0x28, 0x0, 0x60, 0x97, 0xb, 0xc5, 0x21);
- DEFINE_GUID(IID_IShSemaphore, 0xc31c8182, 0x9fcf, 0x11d0, 0xac, 0x28, 0x0, 0x60, 0x97, 0xb, 0xc5, 0x21);
- DEFINE_GUID(IID_IShAtomicCounter, 0xc31c8183, 0x9fcf, 0x11d0, 0xac, 0x28, 0x0, 0x60, 0x97, 0xb, 0xc5, 0x21);
-
-
- DECLARE_INTERFACE_(IShCriticalSection, IUnknown) {
- // IUnknown methods
- STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID* ppvObj) PURE;
- STDMETHOD_(ULONG, AddRef) (THIS) PURE;
- STDMETHOD_(ULONG, Release) (THIS) PURE;
-
- // IShCriticalSection methods
- STDMETHOD(Enter) (THIS) PURE;
- STDMETHOD(Leave) (THIS) PURE;
- };
-
- DECLARE_INTERFACE_(IShLocalStorage, IUnknown) {
- // IUnknown methods
- STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID* ppvObj) PURE;
- STDMETHOD_(ULONG, AddRef) (THIS) PURE;
- STDMETHOD_(ULONG, Release) (THIS) PURE;
-
- // IShLocalStorage methods
- STDMETHOD_(LPVOID, GetValue) (THIS) PURE;
- STDMETHOD(SetValue) (THIS_ LPVOID value) PURE;
- };
-
- DECLARE_INTERFACE_(IShSemaphore, IUnknown) {
- // IUnknown methods
- STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID* ppvObj) PURE;
- STDMETHOD_(ULONG, AddRef) (THIS) PURE;
- STDMETHOD_(ULONG, Release) (THIS) PURE;
-
- // IShSemaphore methods
- STDMETHOD(Signal) (THIS) PURE;
- STDMETHOD_(BOOLEAN, WaitForSignal) (THIS_ BOOLEAN wait) PURE;
- };
-
- DECLARE_INTERFACE_(IShAtomicCounter, IUnknown) {
- // IUnknown methods
- STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID* ppvObj) PURE;
- STDMETHOD_(ULONG, AddRef) (THIS) PURE;
- STDMETHOD_(ULONG, Release) (THIS) PURE;
-
- // IShAtomicCounter methods
- STDMETHOD(SetValue) (THIS_ long value) PURE;
- STDMETHOD_(long, GetValue) (THIS) PURE;
- STDMETHOD(Increment) (THIS) PURE;
- STDMETHOD(Decrement) (THIS) PURE;
- };
-
- DECLARE_INTERFACE_(IShSMPUtilities, IUnknown) {
- // IUnknown methods
- STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID* ppvObj) PURE;
- STDMETHOD_(ULONG, AddRef) (THIS) PURE;
- STDMETHOD_(ULONG, Release) (THIS) PURE;
-
- // IShSMPUtities methods
- STDMETHOD_(IShCriticalSection*, CreateCriticalSection) (THIS) PURE;
- STDMETHOD_(IShLocalStorage*, CreateLocalStorage) (THIS) PURE;
- STDMETHOD_(IShSemaphore*, CreateSemaphore) (THIS_ long maxValue, long initialValue) PURE;
- STDMETHOD_(ULONG, GetNumberOfProcessors) (THIS) PURE;
- STDMETHOD_(BOOLEAN, AreSystemCallsSafe) (THIS) PURE;
- STDMETHOD_(IShAtomicCounter*, CreateAtomicCounter) (THIS) PURE;
- };
-
- #endif
-
-
-
-